/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pck_com.pck_rrhh.pck_src.pck_services.pck_impl;

import com.ibatis.sqlmap.client.SqlMapException;
import com.tramitedocu.pojos.Cls_Unidad_Organizativa;
import java.util.ArrayList;
import java.util.Map;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import pck_com.pck_rrhh.pck_src.pck_pojos.Cls_Posibilidad;
import pck_com.pck_rrhh.pck_src.pck_services.UnidadOrganizativaService;
import pck_com.pck_rrhh.pck_utiles.Cls_Parametros;

/**
 *
 * @author mx
 */
public class UnidadOrganizativaServiceImpl extends SqlMapClientDaoSupport implements UnidadOrganizativaService {

    public String agregarJefeaArea(Cls_Unidad_Organizativa unidad_organica){
        String retorno =  ""+getSqlMapClientTemplate().queryForObject(Cls_Parametros.FuncionIbt_Rrhh_INSERTAR_JEFE_AREA, unidad_organica);
        return retorno;
    }

    public ArrayList<Cls_Unidad_Organizativa> obtenerUnidadesOrganicas(Map<String, String> parametros) {
        try {
            return (ArrayList<Cls_Unidad_Organizativa>) this.getSqlMapClientTemplate().
                    queryForList(Cls_Parametros.FuncionIbt_Rrhh_LISTAR_UNIDADES_ORGANICAS, parametros,
                    (Integer.parseInt(parametros.get(Cls_Parametros.Map_PAGE)) - 1)
                    * Integer.parseInt(parametros.get(Cls_Parametros.Map_PAGE_TAMANIO)),
                    Integer.parseInt(parametros.get(Cls_Parametros.Map_PAGE_TAMANIO)));

        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        } catch (IndexOutOfBoundsException ex) {
            return null;
        }
    }

    public String obtenerCantidadUnidadesOrganicas(Map<String, String> map) {
        try {
            String dat = "" + this.getSqlMapClientTemplate().queryForObject(Cls_Parametros.FuncionIbt_Rrhh_CANTIDAD_UNIDAD_ORGANICA, map);
            return dat;
        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        }
    }

    public ArrayList<Cls_Unidad_Organizativa> obtenerTodasUnidadesOrganicasGenerales(Map<String, String> parametros) {
        try {
            return (ArrayList<Cls_Unidad_Organizativa>) this.getSqlMapClientTemplate().
                    queryForList(Cls_Parametros.FuncionIbt_Rrhh_LISTAR_UNIDADES_ORGANICAS_GENERALES, parametros,
                    (Integer.parseInt(parametros.get(Cls_Parametros.Map_PAGE)) - 1)
                    * Integer.parseInt(parametros.get(Cls_Parametros.Map_PAGE_TAMANIO)),
                    Integer.parseInt(parametros.get(Cls_Parametros.Map_PAGE_TAMANIO)));

        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        } catch (IndexOutOfBoundsException ex) {
            return null;
        }
    }
    public String obtenerCantidadUnidadesOrganicasGenerales(Map<String, String> map) {
        try {
            String dat = "" + this.getSqlMapClientTemplate().queryForObject(Cls_Parametros.FuncionIbt_Rrhh_CANTIDAD_UNIDAD_ORGANICA_GENERAL, map);
            return dat;
        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        }
    }
    public Cls_Unidad_Organizativa obtenerUnidadConResponsable(Map<String, String> map) {
        try{
            return (Cls_Unidad_Organizativa)this.getSqlMapClientTemplate().queryForObject(Cls_Parametros.FuncionIbt_Rrhh_OBTENER_UNIDAD_CON_RESPONSABLE,map);
        }catch(DataAccessException e){
            e.printStackTrace();
            return null;
        }catch(SqlMapException _ex){
            _ex.printStackTrace();
            return null;
        }
    }

    public ArrayList<Cls_Posibilidad> obtenerPosibilidadEnvio(Map<String, String> map) {
        try {
            return (ArrayList<Cls_Posibilidad>) (this.getSqlMapClientTemplate().
                    queryForList(Cls_Parametros.funcionIbt_Rrhh_OBTENER_POSIBILIDAD_ENVIO, map));
        } catch (DataAccessException e) {
            e.printStackTrace();
            return null;
        }catch(SqlMapException ex){
            ex.printStackTrace();
            return null;
        }
    }

    public ArrayList<Cls_Posibilidad> obtenerPosibilidadProyeccion(Map<String, String> map) {
        try {
            return (ArrayList<Cls_Posibilidad>) (this.getSqlMapClientTemplate().
                    queryForList(Cls_Parametros.funcionIbt_Rrhh_OBTENER_POSIBILIDAD_PROYECCION, map));
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public ArrayList<Cls_Posibilidad> obtenerPosibilidadVistoBueno(Map<String, String> map) {
        try {
            return (ArrayList<Cls_Posibilidad>) (this.getSqlMapClientTemplate().
                    queryForList(Cls_Parametros.funcionIbt_Rrhh_OBTENER_POSIBILIDAD_VISTO_BUENO, map));
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}
